Compact personal computers typically have a limited number of peripheral device ports. A problem that has developed is that there are a large variety of different device ports and different manufacturers developed proprietary interfaces for peripheral device ports which were incompatible with each other. One way that has been developed to increase the number of different peripheral devices that can be coupled to a personal computer is through a standard industry interface connector port.
There are several industry standard serial bus interfaces. One of the most commonly used in the universal serial bus interface (USB). USB is a standard interface for connecting peripheral devices to the system bus of a personal computer. USB is a fast, bi-directional, isochronous, low-cost, dynamically attachable serial interface. It is now commonly used for attaching personal computers to a wide variety of other peripheral input/output (I/O) devices, such as monitors, disk drives, modems, mice, printers, scanners, game controllers, keyboards, and other peripherals. With USB there is a single connector type, which permits all USB devices to plug into the same USB socket type. It is common for personal computers and notebook computers to include at least one USB port.
A USB operating system has software program subroutines which monitor the bus's topology and that control access to USB resources. A USB hub is responsible for transferring data upstream (to the computer) and downstream (from the computer to peripheral devices). A personal computer typically has a root hub, which commonly contains one or two USB ports. The root hub may be connected to other external hubs, thereby permitting a large number of peripheral devices to be coupled to a personal computer via an auxiliary hub, as shown in prior art FIGS. 1-2.
USB uses a token-based bus architecture. USB initialization software permits USB devices to be added or removed at any time via an enumeration process, i.e., USB connectors permit so-called “hot plugging” in which new devices can be coupled or uncoupled while the computer is in operation. Whenever a peripheral device is added or removed the change in topology is recognized by the personal computer and appropriate drivers are loaded so that the device is almost immediately available for use.
One goal of USB is true “plug and play” operation in which the user can dynamically couple peripheral devices to a personal computer for immediate use. Once a device is coupled to the PC host, the device is enumerated by the USB initialization software and assigned a unique identifier. However, in practice the configuration process can require a significant amount of time. The time required for the configuration process to be completed will depend upon many factors, such as the type of drivers that must be loaded and the complexity of the system, but will typically be at least several seconds. One problem caused by this is that the user may attempt to use the computer before the operating system has completed loading the drivers and applicable housekeeping activities. This may cause a system error. Another problem is that serious operating system (O/S) problems may result if a USB device is inserted and then removed before the bus topology is reconfigured. For example, if the plug and play device is inserted and then removed before successful reconfiguration, the O/S will not have completely finished processing the device configuration and its corresponding event. This may cause the USB bus to crash such that the other peripheral devices will not work properly. Similarly, a USB bus crash may occur if the user changes the type of device coupled to a USB socket before the bus topology has a chance to become reconfigured. For example, a user may first connect a printer to a USB socket and then change his or her mind and exchange the printer for a scanner. If the changeover occurs too rapidly the bus topology will not have sufficient time to complete the configuration process when the printer is connected or removed such that a USB bus crash may occur.
Known prior art systems do not directly notify a user of the status of the reconfiguration process. For example, the Windows® '98 operating system changes the mouse cursor to an hourglass icon whenever a USB device is plugged or unplugged. The hourglass icon disappears a short time after configuration is completed. However, one problem with using the hourglass icon is that it may be hard for the user to see it. For example, if the cursor is at the edge of the screen it may be hard to see the hourglass icon. There can also be a significant time delay before the hourglass icon is displayed by the system. Another problem is that the hourglass icon is generically used to indicate that the computer is busy and cannot be distinctly interpreted to mean that the USB device is being set up. Consequently, an hourglass icon may not provide a clear enough indication that the user should wait to couple/uncouple USB connectors. Most importantly, the hourglass icon does not directly inform the user exactly when it is safe for the user to couple or uncouple USB connectors. It is merely a general icon that indicates that the operating system is busy and does not display the status of the configuration process.
What is desired is a new apparatus and method for providing real time notification of the progress of a configuration process for a computer coupled to other devices or systems by a serial bus, such as a personal computer coupled to peripheral devices by a USB interface.